In distributed computing systems, a subscriber service comprises a service/network application that wants to use another service, referred to as a publisher service, which exports some functionality desired by the subscriber service. Service discovery in large-scale distributed systems is generally directed towards matching a subscribing service to the correct version of a published service.
Once matched, contemporary subscriber services and publisher services communicate in a static way. If there are communication-related changes that need to be made, such as to change service communication policies, methods, and/or the implementation (e.g., version), code changes to the subscriber service and/or publisher service code are needed.